twd: equinox

September 8 2025

After 3 weeks of debating back and forth how I want to architect what is supposed to be a very simple static site generator, Equinox v0.1 is finally here! Why did I name it Equinox? Because Uma Musume is my current obsession, and Equinox is the latest racehorse to enter the JRA hall of fame! Isn't he cute. It does basically nothing. It's just a "Title" and "Content" text box that I fill in with a generate button at the bottom, appending the entire website's header with the content split up into different paragraphs, and then ending with the proper footers. Am I proud of it? I'm embarassed to say I am, just because it symbolizes my road to recovery of making software a "passion" again. Should I be proud of it? Absolutely not, but eventually I know it will grow into an app I can be happy with.

It's powered by Slint and Rust, since I feel Rust is the next best place for me to expand my repertoire from something like C. I actually discovered Slint from a random C_Programming post on reddit, and I loved the familiar declaritive scripting language they use. After weeks of headbanging to learn some basic CSS it actually looked quite familiar, and the documentation is decent. The trippy thing about Slint is that the script automatically generates functions on the fly, so if you define an element you can trust it to generate an invisible "get_x()" callback. Honestly a much better tradeoff that not only allows a wide set of languages with API support, but avoids the ugliness that often comes with GUI programming trying to cram CSS-like declarative UI description into a language (like Rust) that simply doesn't have the syntax for it.

Another reason I chose Rust was to get over my fear/disdain for it. For a while I was using it at work and I initially hated it, but the error model and pattern matching eventually started to grow on me. I stopped working on that project for a while and here I am for what feels like my 7th attempt of learning the language. Somewhat expected, however, is the Rust memory safety model continues to make me bend over backwards just to do something basic. Here is an awful codebit I had to make just to hide the dialogue box when a user confirms it.

Another big gripe with Rust is that since it insists on being so safe I have to check every single error. I've never had to write a user-facing application before so I'm more than content with it crashing and dealing with it later, so while I understand the intent it makes development a real pain.

That's all there is for now, it's a crappy little app I shouldve made in about half an hour but it honestly took me two days, and I should probably get over my bias against using LLMs, but it's progress! I'm gonna continue crawling out of my slump bit by bit. We're gonna make it.